{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "日月光华 CNN .ipynb",
      "provenance": [],
      "authorship_tag": "ABX9TyO6tbrjhOMn60sAI/3b5kTw",
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "accelerator": "GPU"
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/sunyingjian/study-tensorflow/blob/master/%E6%97%A5%E6%9C%88%E5%85%89%E5%8D%8E_CNN_.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "o_20XGxTn_nQ",
        "colab_type": "code",
        "outputId": "3a00052b-c8e5-4db7-ba5e-2da73f6853c5",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        }
      },
      "source": [
        "%tensorflow_version 2.x\n",
        "import tensorflow as tf\n",
        "print('tensorflow:',format(tf.__version__))\n",
        "tf.config.list_physical_devices('GPU')\n",
        "tf.test.is_gpu_available()\n",
        "import numpy as np\n",
        "from tensorflow import keras\n",
        "from keras import layers\n",
        "import matplotlib.pyplot as plt\n",
        "%matplotlib inline"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "tensorflow: 2.1.0\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ad_QlNdtNSez",
        "colab_type": "code",
        "outputId": "9644032b-11b8-4ac2-db0f-0fb02358d525",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 156
        }
      },
      "source": [
        "fashion_mnist=keras.datasets.fashion_mnist\n",
        "(train_images,train_labels),(test_images,test_labels)=fashion_mnist.load_data()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz\n",
            "32768/29515 [=================================] - 0s 0us/step\n",
            "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz\n",
            "26427392/26421880 [==============================] - 0s 0us/step\n",
            "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz\n",
            "8192/5148 [===============================================] - 0s 0us/step\n",
            "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz\n",
            "4423680/4422102 [==============================] - 0s 0us/step\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "S6iG0axbMcOZ",
        "colab_type": "code",
        "outputId": "5499c77d-d5d5-4b2e-c1c1-eb136f23a69e",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        }
      },
      "source": [
        "train_images.shape"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(60000, 28, 28)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 4
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Esbp2s0EtJ6N",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "train_images=np.expand_dims(train_images,-1)\n",
        "test_images=np.expand_dims(test_images,-1)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "uIh2HEdctetQ",
        "colab_type": "code",
        "outputId": "de409118-bf52-4596-97c9-28d6eb83e112",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        }
      },
      "source": [
        "train_images.shape"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(60000, 28, 28, 1)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 6
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "LBwJ4qqPMe8K",
        "colab_type": "code",
        "outputId": "1937019a-1d58-45e6-babf-fe506001c20c",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        }
      },
      "source": [
        "test_images.shape"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(10000, 28, 28, 1)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 7
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "GwYp8dtHMh42",
        "colab_type": "code",
        "outputId": "1909f335-e9b6-4c81-cb4d-64ba1c8544d5",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        }
      },
      "source": [
        "test_labels"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([9, 2, 1, ..., 8, 1, 5], dtype=uint8)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 8
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "2Rgj-wvBzTHN",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "model=tf.keras.Sequential()#使用顺序模型\n",
        "model.add(tf.keras.layers.Conv2D(64,(3,3),\n",
        "     input_shape=train_images.shape[1:],\n",
        "     activation='relu',\n",
        "     padding='same'))\n",
        "model.add(tf.keras.layers.Conv2D(64,(3,3),\n",
        "     activation='relu',\n",
        "     padding='same'))\n",
        "model.add(tf.keras.layers.MaxPool2D())\n",
        "model.add(tf.keras.layers.Dropout(0.5))\n",
        "model.add(tf.keras.layers.Conv2D(128,(3,3),activation='relu',\n",
        "                 padding='same'))\n",
        "model.add(tf.keras.layers.Conv2D(128,(3,3),\n",
        "     activation='relu',\n",
        "     padding='same'))\n",
        "model.add(tf.keras.layers.MaxPool2D())\n",
        "model.add(tf.keras.layers.Dropout(0.5))\n",
        "model.add(tf.keras.layers.Conv2D(256,(3,3),\n",
        "     activation='relu',\n",
        "     padding='same'))\n",
        "model.add(tf.keras.layers.Conv2D(256,(3,3),\n",
        "     activation='relu',\n",
        "     padding='same'))\n",
        "model.add(tf.keras.layers.MaxPool2D())\n",
        "model.add(tf.keras.layers.Dropout(0.5))\n",
        "model.add(tf.keras.layers.Conv2D(512,(3,3),\n",
        "     activation='relu',\n",
        "     padding='same'))\n",
        "model.add(tf.keras.layers.Conv2D(512,(3,3),\n",
        "     activation='relu',\n",
        "     padding='same'))\n",
        "model.add(tf.keras.layers.GlobalAveragePooling2D())\n",
        "model.add(tf.keras.layers.Dropout(0.5))\n",
        "model.add(tf.keras.layers.Dense(256,activation='relu'))\n",
        "model.add(tf.keras.layers.Dense(10,activation='softmax'))"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "4nOggCEj6zlt",
        "colab_type": "code",
        "outputId": "0366144d-21a2-46e9-d6f6-4f0dea57170c",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 783
        }
      },
      "source": [
        "model.summary()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Model: \"sequential_9\"\n",
            "_________________________________________________________________\n",
            "Layer (type)                 Output Shape              Param #   \n",
            "=================================================================\n",
            "conv2d_46 (Conv2D)           (None, 28, 28, 64)        640       \n",
            "_________________________________________________________________\n",
            "conv2d_47 (Conv2D)           (None, 28, 28, 64)        36928     \n",
            "_________________________________________________________________\n",
            "max_pooling2d_15 (MaxPooling (None, 14, 14, 64)        0         \n",
            "_________________________________________________________________\n",
            "dropout_24 (Dropout)         (None, 14, 14, 64)        0         \n",
            "_________________________________________________________________\n",
            "conv2d_48 (Conv2D)           (None, 14, 14, 128)       73856     \n",
            "_________________________________________________________________\n",
            "conv2d_49 (Conv2D)           (None, 14, 14, 128)       147584    \n",
            "_________________________________________________________________\n",
            "max_pooling2d_16 (MaxPooling (None, 7, 7, 128)         0         \n",
            "_________________________________________________________________\n",
            "dropout_25 (Dropout)         (None, 7, 7, 128)         0         \n",
            "_________________________________________________________________\n",
            "conv2d_50 (Conv2D)           (None, 7, 7, 256)         295168    \n",
            "_________________________________________________________________\n",
            "conv2d_51 (Conv2D)           (None, 7, 7, 256)         590080    \n",
            "_________________________________________________________________\n",
            "max_pooling2d_17 (MaxPooling (None, 3, 3, 256)         0         \n",
            "_________________________________________________________________\n",
            "dropout_26 (Dropout)         (None, 3, 3, 256)         0         \n",
            "_________________________________________________________________\n",
            "conv2d_52 (Conv2D)           (None, 3, 3, 512)         1180160   \n",
            "_________________________________________________________________\n",
            "conv2d_53 (Conv2D)           (None, 3, 3, 512)         2359808   \n",
            "_________________________________________________________________\n",
            "global_average_pooling2d_6 ( (None, 512)               0         \n",
            "_________________________________________________________________\n",
            "dropout_27 (Dropout)         (None, 512)               0         \n",
            "_________________________________________________________________\n",
            "dense_12 (Dense)             (None, 256)               131328    \n",
            "_________________________________________________________________\n",
            "dense_13 (Dense)             (None, 10)                2570      \n",
            "=================================================================\n",
            "Total params: 4,818,122\n",
            "Trainable params: 4,818,122\n",
            "Non-trainable params: 0\n",
            "_________________________________________________________________\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "dTmAOyRQDvGk",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "model.compile(optimizer='adam',\n",
        "       loss='sparse_categorical_crossentropy',\n",
        "       metrics=['acc'])"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "q_o1Xp4Os1dS",
        "colab_type": "code",
        "outputId": "733e0647-b2f5-4ce9-f20f-ca1cc924d4d1",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        }
      },
      "source": [
        "history=model.fit(train_images,train_labels,\n",
        "         epochs=30,\n",
        "         validation_data=(test_images,test_labels))"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Train on 60000 samples, validate on 10000 samples\n",
            "Epoch 1/30\n",
            "60000/60000 [==============================] - 38s 637us/sample - loss: 0.8016 - acc: 0.6969 - val_loss: 0.4366 - val_acc: 0.8328\n",
            "Epoch 2/30\n",
            "60000/60000 [==============================] - 37s 624us/sample - loss: 0.4709 - acc: 0.8260 - val_loss: 0.4220 - val_acc: 0.8516\n",
            "Epoch 3/30\n",
            "60000/60000 [==============================] - 38s 626us/sample - loss: 0.4323 - acc: 0.8415 - val_loss: 0.3867 - val_acc: 0.8546\n",
            "Epoch 4/30\n",
            "60000/60000 [==============================] - 38s 628us/sample - loss: 0.4113 - acc: 0.8489 - val_loss: 0.3671 - val_acc: 0.8550\n",
            "Epoch 5/30\n",
            "60000/60000 [==============================] - 38s 628us/sample - loss: 0.3926 - acc: 0.8566 - val_loss: 0.3641 - val_acc: 0.8609\n",
            "Epoch 6/30\n",
            "60000/60000 [==============================] - 38s 626us/sample - loss: 0.3836 - acc: 0.8600 - val_loss: 0.3399 - val_acc: 0.8757\n",
            "Epoch 7/30\n",
            "60000/60000 [==============================] - 38s 627us/sample - loss: 0.3822 - acc: 0.8593 - val_loss: 0.3523 - val_acc: 0.8682\n",
            "Epoch 8/30\n",
            "60000/60000 [==============================] - 38s 628us/sample - loss: 0.3681 - acc: 0.8656 - val_loss: 0.3358 - val_acc: 0.8749\n",
            "Epoch 9/30\n",
            "60000/60000 [==============================] - 38s 627us/sample - loss: 0.3726 - acc: 0.8638 - val_loss: 0.3331 - val_acc: 0.8771\n",
            "Epoch 10/30\n",
            "60000/60000 [==============================] - 38s 628us/sample - loss: 0.3667 - acc: 0.8673 - val_loss: 0.3351 - val_acc: 0.8737\n",
            "Epoch 11/30\n",
            "60000/60000 [==============================] - 38s 627us/sample - loss: 0.3603 - acc: 0.8684 - val_loss: 0.3289 - val_acc: 0.8737\n",
            "Epoch 12/30\n",
            "60000/60000 [==============================] - 38s 628us/sample - loss: 0.3594 - acc: 0.8686 - val_loss: 0.3215 - val_acc: 0.8809\n",
            "Epoch 13/30\n",
            "60000/60000 [==============================] - 38s 631us/sample - loss: 0.3620 - acc: 0.8700 - val_loss: 0.3757 - val_acc: 0.8566\n",
            "Epoch 14/30\n",
            "60000/60000 [==============================] - 38s 629us/sample - loss: 0.3532 - acc: 0.8720 - val_loss: 0.3155 - val_acc: 0.8786\n",
            "Epoch 15/30\n",
            "60000/60000 [==============================] - 38s 626us/sample - loss: 0.3607 - acc: 0.8708 - val_loss: 0.3260 - val_acc: 0.8740\n",
            "Epoch 16/30\n",
            "60000/60000 [==============================] - 38s 628us/sample - loss: 0.3551 - acc: 0.8713 - val_loss: 0.3281 - val_acc: 0.8765\n",
            "Epoch 17/30\n",
            "60000/60000 [==============================] - 38s 628us/sample - loss: 0.3591 - acc: 0.8698 - val_loss: 0.3369 - val_acc: 0.8691\n",
            "Epoch 18/30\n",
            "60000/60000 [==============================] - 38s 629us/sample - loss: 0.3538 - acc: 0.8726 - val_loss: 0.3240 - val_acc: 0.8786\n",
            "Epoch 19/30\n",
            "60000/60000 [==============================] - 38s 629us/sample - loss: 0.3536 - acc: 0.8721 - val_loss: 0.3386 - val_acc: 0.8704\n",
            "Epoch 20/30\n",
            "60000/60000 [==============================] - 38s 627us/sample - loss: 0.3558 - acc: 0.8718 - val_loss: 0.3318 - val_acc: 0.8775\n",
            "Epoch 21/30\n",
            "60000/60000 [==============================] - 38s 628us/sample - loss: 0.3556 - acc: 0.8719 - val_loss: 0.3257 - val_acc: 0.8799\n",
            "Epoch 22/30\n",
            "60000/60000 [==============================] - 38s 633us/sample - loss: 0.3567 - acc: 0.8721 - val_loss: 0.3177 - val_acc: 0.8807\n",
            "Epoch 23/30\n",
            "60000/60000 [==============================] - 38s 629us/sample - loss: 0.3518 - acc: 0.8734 - val_loss: 0.3151 - val_acc: 0.8881\n",
            "Epoch 24/30\n",
            "60000/60000 [==============================] - 38s 628us/sample - loss: 0.3550 - acc: 0.8738 - val_loss: 0.3576 - val_acc: 0.8627\n",
            "Epoch 25/30\n",
            "60000/60000 [==============================] - 38s 630us/sample - loss: 0.3591 - acc: 0.8724 - val_loss: 0.3281 - val_acc: 0.8756\n",
            "Epoch 26/30\n",
            "60000/60000 [==============================] - 38s 627us/sample - loss: 0.3548 - acc: 0.8714 - val_loss: 0.3088 - val_acc: 0.8879\n",
            "Epoch 27/30\n",
            "60000/60000 [==============================] - 38s 628us/sample - loss: 0.3690 - acc: 0.8676 - val_loss: 0.3594 - val_acc: 0.8601\n",
            "Epoch 28/30\n",
            "60000/60000 [==============================] - 38s 628us/sample - loss: 0.3742 - acc: 0.8654 - val_loss: 0.3214 - val_acc: 0.8722\n",
            "Epoch 29/30\n",
            "60000/60000 [==============================] - 38s 630us/sample - loss: 0.3780 - acc: 0.8681 - val_loss: 0.3338 - val_acc: 0.8723\n",
            "Epoch 30/30\n",
            "60000/60000 [==============================] - 38s 632us/sample - loss: 0.3577 - acc: 0.8725 - val_loss: 0.3172 - val_acc: 0.8767\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "7tdOtV5d7_bk",
        "colab_type": "code",
        "outputId": "ca64423d-c123-429d-c434-5bac385e2140",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        }
      },
      "source": [
        "history.history.keys()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "dict_keys(['loss', 'acc', 'val_loss', 'val_acc'])"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 43
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "kzzvxtNV8SEc",
        "colab_type": "code",
        "outputId": "85e94da2-45e8-4ef8-d801-f19f8bfa4cb2",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 283
        }
      },
      "source": [
        "plt.plot(history.epoch,history.history.get('acc'),label='acc')\n",
        "plt.plot(history.epoch,history.history.get('val_acc'),label='val_acc')"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f490c272cc0>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 44
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ulOM8adwhxqn",
        "colab_type": "code",
        "outputId": "dc4c5409-160f-4154-e6fa-2392b9c1c597",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 283
        }
      },
      "source": [
        "plt.plot(history.epoch,history.history.get('loss'),label='loss')\n",
        "plt.plot(history.epoch,history.history.get('val_loss'),label='val_loss')"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f48fe764eb8>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 42
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    }
  ]
}